implemented cannon, first pass
git told me to
merged