added socketserver solution