reimplemented shotgun