extend canvas init only when necessary