My own lightweight IoC container