Updated canvas methods to use retained painter