IoC is working (kind of), still needs improvement