Switched to lazy-loading for the backend

* Loading the backend class in the backend model
* Added support for model extensions