added a add_cannon function