(be sure to run cargo test before changes)