add proce.communicate() for detail see comments