add license
rewrite "ensure", first iteration
introduce zeq()