improved button buffer