ooooo      ooo    oooooooooooo    oooooo   oooooo     oooo
          `888b.     `8'    `888'     `8     `888.    `888.     .8'
           8 `88b.    8      888              `888.   .8888.   .8'
           8   `88b.  8      888oooo8          `888  .8'`888. .8'
           8     `88b.8      888    '           `888.8'  `888.8'
           8       `888      888       o         `888'    `888'
          o8o        `8     o888ooooood8          `8'      `8'