done with server structure