At the moment, this implementation may look a bit unnecessarily verbose, but eventually it will allow us to be more specific in our message handling.