Inversion of control IoC