Re-did socket interface, it's much better now