system as event subscriber, engine as broker

completed remodelling, untested!