Interface instead of implementation for Tcp