refactor, add buttongroup
add some examples
fix button label