using smart partEval