*    <<       |       |  /~~~~~~\  |       |  |   /  |^^^^^^^
*   <<        |       |  |      |  |       |  |  /   |
*  <<         |       |  |      |  |       |  | /    |
* <<--------  |_______|  |      |  |       |  |<     |^^^^^^^
*  <<         |       |  |------|  |  /^\  |  | \\   |
*   <<        |       |  |      |  | /   \ |  |  \\  |
*    <<       |       |  |      |  |/     \|  |   \\_|_______
