revert of another approach, which will be implemented in separate branch
removed unnecessary abstraction layer: NgramProvider