update. working socket stuff