update from sparksp