Fixes #22. Fixes #12. Fixes #9