moved logic for bound methods and instances out of compile into eval