split into modules; client connection overtake