I would like to take time to note that the word 'spam' has 4 letters. The 4 letters are in a precise order associated with the word. We could consider that each letter might be associated with its next, as a property. Here is some python code: class Spam: def __init__(self, character, next_letter = None, prev_letter = None): self.character = character self.next_letter = next_letter self.prev_letter = prev_letter def __str__(self): return self.character Letter_S = Spam('s') Letter_P = Spam('p', None, Letter_S) Letter_S.next_letter = Letter_P Letter_A = Spam('a', None, Letter_P) Letter_P.next_letter = Letter_A Letter_M = Spam('m', None, Letter_A) Letter_A.next_letter = Letter_M) Maybe next we could consider that spam might be full of vague traces, indicating mail processing equipment and marketing choices of organizations ... maybe reorder the letters to say "maps" or something!