new noise function and adds ability to do simplex noise