[wip] add button function