improved self adjusting buttons