refactored draw, query, and select canvases into generic canvas class
removed draw, query, select canvas classes