added a ton of new tests, still more to come