Comments largely added, please add any more necessary before it's turned
in!!!