added socket framework