add UIButton category and some tiny fix.