almost done, but the test helper still needs to be fixed