oooooooooooo   .ooooo.    ooooo            oooo  ooooooooooooo  oooo        
d'""""""d888' 888' `Y88. `888' `888 8' 888 `8 `888
.888P 888 888 888 888 888 888 .oo.
d888' `Vbood888 888 888 888 888P"Y88b
.888P 888' 888 888 888 888 888
d888' .P .88P' 888 o 888 888 888 888
.8888888888P .oP' o888ooooood8 .o. 88P o888o o888o o888o
`Y888P