private void resolveSummonProperties(SummonableService instance_, Class<?> clazz_)
  {
    //System.out.println("Summon.resolveSummonProperties(): " + clazz_.getName());
    Field[] fields = clazz_.getDeclaredFields();
    
    // Property fields
    for (Field field : fields)
    {
      // allow to change private field
      field.setAccessible(true);
      //System.out.println("\t" + field.getName());
      if (field.isAnnotationPresent(ServiceProperty.class))
        try
        {
          //System.out.println("ANNOTATION PRESENT: " + field.getName());
          instance_.getProperties().createProperty(field.getName(), String.valueOf(field.get(instance_)));
          instance_.getProperties().createProperty(field);
        }
        catch (IllegalArgumentException e)
        {
          e.printStackTrace();
        }
        catch (IllegalAccessException e)
        {
          e.printStackTrace();
        }
    }
    
    // Restart property
    Method[] methods = clazz_.getDeclaredMethods();
    for (Method method : methods)
    {
        method.setAccessible(true);
        if (method.isAnnotationPresent(RestartService.class))
        {
            instance_.addRestartService(method);
        }
    }
    // call parents
    if (!clazz_.equals(ServiceAbstract.class))
    {
      //System.out.println("SUPERCLASS: " + clazz_.getSuperclass().getName());
      resolveSummonProperties(instance_, clazz_.getSuperclass());
    }
   }