Follows the same design as `HasServer` in the previous commit. A test has been added (which incidentally acts as a test for the HasServer instance).