some new functions!