dynamic buttons update