Merge "BUG-1813: rework the interface to allow multiple implementations"