Buttons with highly variable behaviors. How would you do it?

200