multiple changes and new functions