Infinite canvas implementation, still need to finish some parts and work out changing width/height bug