ICast interface, black mage and white mage implement it