move magic to weapon specific wield function