avoiding casts