Improved cannon