button component updates