bottom-up freevars