Added runtime checks to ensure correctness.

@Mequrel Review this and accept/reject. 

I've (re)added runtime sanity checks. Why? Because it was much easier than fixing validator. Additionally, now I like the idea of runtime sanity checks to verify interactions.