those check-casts are needed