I like this, and I wonder what @tarcieri thinks. This would mean collapsing the various subclasses into (effectively) specialized initializer methods on Server.