half-done with mongo refactor
all tests passing