improve on Spark