The source project of this merge request has been removed.
Split index module into multiple submodules to improve readability.
This does not change any code, but just splits the module and moves stuff around so that it will hopefully become easier to read and hence maintain.