@eval replaced with ~@