added heuristics n stuff