add shixing's work