variables must be free