Complete : Add Asynchronous / Synchronous mode