add archive func