custom DI implementation done #11