Decoupling Application Code from IoC Implementation