Pretty much done, now to merge with master