use enums for message type and status