Need to fix tests, but most up to date
Need to fix final tests, this version is just for review