[eluser]Pygon[/eluser]
[quote author="Hyra" date="1204065239"]
As you can hopefully understand from my point of view (or MVC in general), above example, should just be in a model, and be called by the controller, as it mainly does database actions. The rest (form validation and sending the mail) can be controlled by using the form _library_ and the email _library_
Maybe i was doing things correctly all along and should just stick to using/creating models for the processing of the data, using the prebuilt libraries of CI "as is". Think i just got confused by finding all sorts of "Auth Libraries for CodeIgniter" which confuzzled me as to what the difference between a model and a library actually is

[/quote]
Going back to my PDF example, in your situation you would have:
pdf_type1_model, pdf_type2_model, pdf_type3_model;
Each of your models would have a seperate function for creating a pdf. What happens if you need to change the way a PDF is created -- maybe there was something wrong with the way your create function was working. Instead of being able to update your function in one place, the library, you have to modify all three models.
The premiss of this is very similar to Object Oriented Programming and class inheritance. An initial class (library) provides the basic functionality, where as other classes that inherit from this provide program specific functionality (models).