Implement Armorsmith, with tests