TSP constructor