auto dependency injection was not the best idea because of ordering issues..