Maybe we need some kind of `action` method so we don't have to cast.