refactoring models - mostly documentation and tidying up, but also add InfoQuery object for generic information about the data in the index