Big Refactor

Added asynchronous message handling
Moved member classes out