refactor IconicButton