fixed shoot function