Worked more on self canvas implementation