added Socket class