messaging logic has been moved to different implementation files