Huge update - bad style to do it in one commit, but, well sue me...