added CustomMainUIButton and Delegate