add value approximation function and use smooth random: result=== performance bad