dynamic number of variables