Further split the _shot method