new functions and more usable