Added in message loader pattern to manage testability loading of messages.
Have not implemented further tests yet as will likely lead to a lot of breaking changes.