adding new library functions