wrap socket in interface