This probably should be `private[spark]`