edit and add new functions