--- license: afl-3.0 --- its decent, but needs more work