types of messages implemented correctly now