added simplex noise