feature add share function