Partial refactor weapon code into own files (#64)