completetly working server + client