Big changes, redoing DI so everything is more-or-less broken.