cfc70c9806
Had to leave some unfinished due to complexity at the moment
284 B
284 B