eval
rough working draft of eval