added socket class