all function done.