eval func improve