Refactoring and first pass at factory support for logon message