use shared pointer for NTCPSession