factory and stores + newmessage + nicely ordered