add abstract dependency injection extension to handle common stuff
cs fixes