Refactoring crafting and generic craft/building