add lib function