use more variables for defs