refined button object