add GreedyFunc which handles everything so we can have dispatchers outside the victor lib