draft for Context and Socket