moved controllerLoader to generalised controllerLoader trait. added abstract val "loader" to be implemented by inheriting objects