broken into basic and server