revise shared dataset func