add eval and update function