buttons respond as expected