Started the refactoring of the codebase. Still need to move the 'primitive' behaviors out of msg.go