Worked on message hierarchy and factory