added custom socket