Start to separate the interface and implementation of change listeners and change recorders to allow the implementation to live in a separate library from the models
Update the imit facet so that it adds methods to a subscription service for subscribe/unsubscribe and make sure the client-side component is generated appropriately. This avoids significant hand-rolling of code across projects.