There are 15 components in total, 13 of which contain methods and functions relating to the Last.fm API.
The system I came up with requires the user to access ONE method within ONE component only, and all classes, methods and arguments are passed through this one function.
Each of the functions within the main methods contain an extra argument (return). This is used to allow you to choose what format you would like to receive the data. As default, this is 'struct'. All functions have the option for 'xml' output.