Rewrote cache::Signature in a simpler way.