implement canvaspanel and easelpanel