implementing message processing with a bus