add unit tests
upload works and tests pass