final changes, tests are passing. yay