heuristic added, not tested