from messages to types, adhere to documentation