canvas changes to flexibly support screen sizes