add onUpgrade