Nice solution. In a separate PR I/you/we should remove the use of `ol.ObjectProperty.ACCESSORS` and friends, but this should definitely be in a separate PR. Thanks for the great technical discussion!