html canvassing tutorial from http://learnjs.io/canvassing