* func upgrade