completed server, still working on client.