lightweight dependency container without magic