Extra type for each message

Also New*Message does not yield an error
Implement some message handlers