wip pre arrays
all tests passing
much better test coverage, might even work