if (len(sys.argv) >= 3):
              print sys.argv
              parser = argparse.ArgumentParser(description='Kinect state listener')
              parser.add_argument('-p','--param', help='Parameter server address', required=True)
              parser.add_argument('-n','--name', help='Name of the node', required=True)
              args = vars(parser.parse_args())
              name = args["name"]
              paramServer = args["param"]

              # Utils
              import parameter_utils
              node = parameter_utils.getNodeParameters(name,paramServer,1000)

              if node != None:
                  print node
                  sub = parameter_utils.getSubscriberInfo(node,"KinectBodies")
                  if sub != None:
                    SUB_IP = sub.host.encode('utf-8')
                    SUB_PORT = sub.port
                    SUB_TOPIC = sub.topic.encode('utf-8')
                    print "Subscriber info retrieved"
        else:
              print "Start locally"

        context = zmq.Context()
        sock = context.socket(zmq.SUB)
        sock.connect("%s:%s" % (SUB_IP,SUB_PORT))
        sock.setsockopt(zmq.SUBSCRIBE, SUB_TOPIC)

        while True:
            topic = sock.recv()
          name = args["name"]
          paramServer = args["param"]

          # Utils
          import parameter_utils
          node = parameter_utils.getNodeParameters(name,paramServer,1000)

          if node != None:
              ROBOTIP = parameter_utils.getParam(node,"ROBOTIP", "127.0.0.1")
              PORT =  int(parameter_utils.getParam(node,"ROBOTPORT", "9559"))
              CTX_IP = parameter_utils.getParam(node,"ContextClientHost", "tcp://localhost")
              CTX_PORT = int(parameter_utils.getParam(node,"ContextServerPort", "5800"))
              module = NaoBehaviorModule.NaoBehaviorModule(ROBOTIP,PORT)
              behaviors = module.getCapabilities()
              #parameter_utils.register_behaviors(node,paramServer,["crouch","stand","hand_wave","greet","wish","introduction"])
              parameter_utils.register_behaviors(node,paramServer,behaviors)
              #thread.start_new_thread(imitate_client,(module,CTX_IP,CTX_PORT))
              subscriber = parameter_utils.getSubscriberInfo(node,'ParamList')
              thread.start_new_thread(imitate_subscriber,(module,str(subscriber.host),int(subscriber.port),str(subscriber.topic)))
      else:
          print "Start locally"

      time.sleep(1)

      # do nothing 
      while 1:
        pass
  except:
      print "Exception occurred : ", sys.exc_info()
    
  raw_input("Press enter to continue ... ")