Before this turns into a monster I think we need to just think about the architecture of this entire project and really design it well. Obviously use the existing code but organise it and reformat it as needed. I just want a strong foundation to build on top of, before it gets out of hand