Done: server listen, interact functions and client