move core::cast to core::array::cast whenever it makes sense
move core::convert to core::array::convert