Плохо, что вы везде вынуждены использовать явное приведение типов. Это потенциальный источник проблем.
Как можно от него избавиться?