Implemented a custom dependency injection way for loading adapters
Added comments