bug fix : observer, button