split into explicit and implicit rules
add variable and cleanup