cleaned up button interface