fix paren warning
restrict short names to a single character; refactor opt matching
remove broken assumption
make the code a little bit more understandable
update demo explanations
fix regression