all tests pass, need to check in real life before pushing gem