Continuing IOC refactor