     p._resolver = resolver
     p._fx = fx
     p._fe = fe if twoF
-    p._serial = !!serial
-    p._immediate = !!immediate
     extra.call p if extra
     @_addNext p
     return if finish then undefined else p

# Makes a new promise chained off this with given resolver.
unitFx = (x) -> x
unitFe = (e) -> throw e
stepWith = (type, resolver, twoF, finish, serial, immediate, extra) -> (fx, fe) ->
    fx = unitFx unless typeof fx == 'function'
    fe = unitFe unless typeof fe == 'function'
    p = new X(INI)

X::fail    = X::catch = stepWith 'fail', failResolver
X::always  = X::fin = X::finally = stepWith 'always', alwaysResolver
# internal always-resolver to not confuse things
X::_always = stepWith 'always', alwaysResolver, true, false, -> @_immediate = true

# spread is like then
X::spread = stepWith 'spread', (fx, fe, v, isError, cb) ->
