interface for heuristics