now handles variable