add heuristic function