DIContainer with examples how to use it