Added DefaultSocketImpl and refactored Socket for using it