more robust, button fades