refactor weapons heritage