add client & basic server functionalities