add eval functionality