draws much quicker due to correct use of beginPath(). Also doesn't use shapes if not autofit