don't have so much casts that aren't needed