added some tones and a singleton for memoization