tons of bugfixes, test fixes, new tests, etc