button interface improvement