Canvas implementation 2.0