update canvas implementation