Refactored IoC