update & fix bug