add test suite
works on both Python 2 and 3
use $1 and $2 instead of $f and $t in custom commands
use more suitable exceptions
refactor before adding -a option
add -a option
add man page