removed generics, codec accepts message type