adding adapters and IoC