Replace event bus with property-based function references
Add build