better variable defs