why was this changed to use eval?