created a new interface for servers to follow and added more unit tests