canvas version

its slow