Added a random construction heuristic. A lot of refactoration.