Encapsulating shooting logic