Reorganise the index logic, allows launcher to be overridden