better decoupling and SM config
MemoryCache gets its own repository
better routing