One the reasons we have lots of similar lazyload modules is that I was keen not to end up with a fat controller. By abstracting each lazyload module you end up having to pass all the functionality in through the init/constructor.