changes so that users can observe all om.core/transact! calls on the app state