After a long hiatus, I have started working on this project again. I have decided to make a few changes so this now gets broken into two parts:
Take 1
Take 2