more button abstraction