keep buttons up-to-date