supports custom data sending over tcp sockets