Replace eval with a callback parameter