Add DI components

Add DI components and unit tests for them.