basic server structure