in CI, for me at least, views must be your layout (html), controllers are the structure and models handles the data. When building an app, where do business logic will be?
I have maintained the controller only to handle urls, because i want to separate structure to business logic. i've been using my models to retrieve data and process it (data and business logic), but there would be a problem if i decided to switch data sources.
is it a best practice to always introduce a library to separate the main business logic?