tests and server code is more modular