added structure for Eval and with