does it make sense to have private[spark] here since the whole class is private[spark]?