commiting canvas with classical inheritance approach