Added cache support for #20, among many other features, refinements, and noise.