rename eval -> apply