rebuild eval function