less useless casting