added heuristic generation (part one complete and second started