revise receiveBlock