finish the server, add roughly half of a test suite