A computer implemented method including: creating a model based on structured data of a data source, the structured data including data structures (202 - 214), each data structure having data elements, each data element having fields, each field having a name, wherein creating the model includes: creating an object (218 - 230) in the model based on a data structure (202 - 214) in the structured data; translating a name of a field in the data structure to a natural language name; creating a field for the object having the natural language name; creating a relationship field for the object based on a relationship between data structures in the structured data; loading the model into memory; generating a hierarchy of objects from the objects (218 - 230) in the model, the hierarchy organizing the objects with respect to a starting object selected by a user according to relationship fields for the objects, wherein generating the hierarchy of objects comprises referring to the model loaded into memory to determine how to populate the hierarchy of objects based on the starting object, wherein a user interface includes elements (304 - 314)for one or more of the objects in the hierarchy, wherein the user interface enables the user to create a report and filter the report using the natural language name; the hierarchy being dependent on the starting object and the user interface being adapted to modify the hierarchy by reference to the stored model according to the user selected starting object; receiving a first user selection of a first element from the elements (304 - 314) for the one or more of the objects in the hierarchy; generating a report including: identifying a data structure corresponding to the first element; obtaining data from at least one field in the identified data structure in the data source; and presenting the data to the user via the user interface; receiving a second user selection of a second element from the elements (304 - 314) for the one or more of the objects in the hierarchy; identifying a relationship between the second and first elements based on a hierarchical relationship between the second and first elements in the hierarchy of objects; and updating the report based on the identified relationship and presenting the updated data to the user via the user interface. creating a model based on structured data of a data source, the structured data including data structures (202 - 214), each data structure having data elements, each data element having fields, each field having a name, wherein creating the model includes: creating an object (218 - 230) in the model based on a data structure (202 - 214) in the structured data; translating a name of a field in the data structure to a natural language name; creating a field for the object having the natural language name; creating a relationship field for the object based on a relationship between data structures in the structured data; creating an object (218 - 230) in the model based on a data structure (202 - 214) in the structured data; translating a name of a field in the data structure to a natural language name; creating a field for the object having the natural language name; creating a relationship field for the object based on a relationship between data structures in the structured data; loading the model into memory; generating a hierarchy of objects from the objects (218 - 230) in the model, the hierarchy organizing the objects with respect to a starting object selected by a user according to relationship fields for the objects, wherein generating the hierarchy of objects comprises referring to the model loaded into memory to determine how to populate the hierarchy of objects based on the starting object, wherein a user interface includes elements (304 - 314)for one or more of the objects in the hierarchy, wherein the user interface enables the user to create a report and filter the report using the natural language name; the hierarchy being dependent on the starting object and the user interface being adapted to modify the hierarchy by reference to the stored model according to the user selected starting object; receiving a first user selection of a first element from the elements (304 - 314) for the one or more of the objects in the hierarchy; generating a report including: identifying a data structure corresponding to the first element; obtaining data from at least one field in the identified data structure in the data source; and presenting the data to the user via the user interface; identifying a data structure corresponding to the first element; obtaining data from at least one field in the identified data structure in the data source; and presenting the data to the user via the user interface; receiving a second user selection of a second element from the elements (304 - 314) for the one or more of the objects in the hierarchy; identifying a relationship between the second and first elements based on a hierarchical relationship between the second and first elements in the hierarchy of objects; and updating the report based on the identified relationship and presenting the updated data to the user via the user interface.