some lib function