allow a `cache` to be passed in the constructor
0.3.1