add error_t and message_t