working on server implementation