fixed Cannon inheritance problem