internals alomst complete. send recv interface and testing left