messages & events + tests