fix tests
use Variable.from_ast whenever possible
introduce labels; random fixes