Improve the structure of the framework

By using only macros, it's much more easier to add models to the
framework. See README for more details.