Separated some of the initialization from the core controller into independent methods. Will make it easier to extend core features without overriding the entire constructor.