DI: configurable cache implementation [Closes #5]