fixed- `_validate` now explicitly disallows negatives