the first commit of simple ioc container (similar to spring ioc container)