ideally we would make the class configurable over the DI configuration