Refactored crafting class