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