rename
push done, not tested, abstract changed
own implementation of socket handshake