Terms validation

Fixes #27 
Fixes #28 
~~Requires d14cda8db0f7db56eff7becf83a67cccee4445b5 (#26)~~