Major overhaul of messages - all messages into models and fix all major functions - so now works