merge client-server branch