Three types of shot implemented