Reverted changes for a more compatible solution

Previous commit would have broken `sign()` method.
`key` can now be set by supplying it alongside `validateFunc`.