Slight re-arrange of TCP logic + more listen() work