some new socket stuff