update so many stuff