Move IndexProjector to its own file