further refine new State and Message factories