How to decouple your application from IoC container implementation