If we're going to have the abstraction then we need to not do casts like this.