implementing message types
(baby steps)