added separate module that contains server and client