adding typedef for output and completion blocks