1634 dont return none 2

OK, folks the order of these commits, per warner's recommendation:

refactor, tests (which fail), change code (tests pass)

In addition to a bunch of advice/explanation by warner, I had a lot of help from:

https://github.com/rrymer