Major refactor for #17 - prompted by #3
Major refactor for #17 - prompted by #3
Finished initial server refactor for #17