Buttons upgrade

Let's get this into master.