update button behaviour according to specification