added ProtoGun class