Model get specific component cleanup

I added some documentation, tests and the ability to specify components by name and index to several methods.