clean declare OperationDelegate and allocate block