citation of John and Michael's book, as well as cranvas, qtbase, qtpaint
we need to emphasize the interaction via command line at some point