try to optimise canvas drawer.