Added a contracts folder where we can put all "cross component" events
Refactored the heartbeats to be a little more expressive