this is only used inside of the spark package and it is always instantiated directly