update buttons and logic