Updates from Dave's comments, compiling but still need to fix some tests (or see if they need tweaking)