more canvas explained, example, dynamic canvas