added simplex noise generator