add DI, DI container and storage decorator