better toggle button behavior