Simple dependency injection with promise support