Fixes #11 (and fixes #2 as we drop the Python classes)