Library can be used to create reused models, that allow to create dynamic forms.
You can extend base models. By the way there are function-helpers. 