 	 * then these values will be passed to 2 and 3.
 	 * @private
 	###
+	$groupNum = 5
 
 	$circularErrorInfo = 'circular promise resolution chain'
 

	then: (onFulfilled, onRejected) ->
		self = @

		hGroup = [onFulfilled, onRejected]

		@[@_hCount++] = hGroup

		hGroup[4] = new Yaku (resolve, reject) ->
			hGroup[2] = resolve
			hGroup[3] = reject

			if self._state != $pending
				self._resolveHanlers hGroup

			return

	###*
	 * The catch() method returns a Promise and deals with rejected cases only.

	 * We can call these functions, once our operation is completed.
	###
	constructor: (executor) ->
		executor genTrigger(@, $resolved), genTrigger(@, $rejected)

	###*
	 * Appends fulfillment and rejection handlers to the promise,
