review and new functions