add update logic and remove Cext support