updated with canvas docs