eval arguments recursively instead of with append