Refactor code so that messages go through engines
Merge pull request #541 from hurtonm/rework_message_flow

Refactor code so that messages go through engines