moved most messages to MessageHandler class