Lots of updates / cleanup that I should have commited on smaller chunks along the way