code: static GroundyTask get(Class<? extends GroundyTask> taskClass, Context context) {
      if (CACHE.containsKey(taskClass)) {
        return CACHE.get(taskClass);
      }
      GroundyTask groundyTask = null;
      try {
        L.d(TAG, "Instantiating " + taskClass);
        Constructor ctc = taskClass.getConstructor();
        groundyTask = (GroundyTask) ctc.newInstance();
        if (groundyTask.canBeCached()) {
          CACHE.put(taskClass, groundyTask);
        } else if (CACHE.containsKey(taskClass)) {
          CACHE.remove(taskClass);
        }
        groundyTask.setContext(context);
        groundyTask.onCreate();
        return groundyTask;
      } catch (Exception e) {
        L.e(TAG, "Unable to create value for call " + taskClass, e);
      }
      return groundyTask;
    }
docs: Builds a GroundyTask based on call.
  
  @param taskClass groundy value implementation class
  @param context used to instantiate the value
  @return An instance of a GroundyTask if a given call is valid null otherwise