Revised cannon logic