Source: https://www.cs.colorado.edu/~kena/classes/6448/f07/lectures/22/22-SingletonCommand.pdf