factory library functions tested