refactored Rods into MagicRod, josh pls follow conventions