Refactor: cleanup and documentation of DIContainer