Immutable validation chains

Resolves #4