fix null reference
remove imagesmoothingenabled because it doesn’t really work
rename canvas to canvas2d and move all the 2d canvas specific logic into it
separate private and internal functions in the classes