Moved noise generation out of BasicNoise to its own class.