update according to the demo