fix "cons" (was mutating lists)
simplify evaluation