before implementing socets and runnable