upload new functions