improve eval proc