Semi-automatic weapon