putting most of the logic in lazy attributes
adapted test
syntax error, DRY
fixing most of the tests
completing
make most tests pass
syntax error in py2
queue on Py3 == Queue on Py2