added TCP communication