implement DI w/ structure map