code: public static <I extends ImageGray<I>>
  	PointTracker<I> dda_FH_SURF_Stable(
  											ConfigFastHessian configDetector ,
  											ConfigSurfDescribe.Stability configDescribe ,
  											ConfigSlidingIntegral configOrientation ,
  											Class<I> imageType)
  	{
  		ScoreAssociation<TupleDesc_F64> score = FactoryAssociation.scoreEuclidean(TupleDesc_F64.class, true);
  		AssociateSurfBasic assoc = new AssociateSurfBasic(FactoryAssociation.greedy(score, 5, true));
  
  		AssociateDescription2D<BrightFeature> generalAssoc =
  				new AssociateDescTo2D<>(new WrapAssociateSurfBasic(assoc));
  
  		DetectDescribePoint<I,BrightFeature> fused =
  				FactoryDetectDescribe.surfStable(configDetector,configDescribe,configOrientation,imageType);
  
  		DdaManagerDetectDescribePoint<I,BrightFeature> manager = new DdaManagerDetectDescribePoint<>(fused);
  
  		return new DetectDescribeAssociate<>(manager, generalAssoc, new ConfigTrackerDda());
  	}
docs: TODO remove maxTracks?  Use number of detected instead