function Observable.Subscribe(l,a,f,B)local e=Subscription.new(a,f,B)local Q=l._onSubscribe(e)if Q then e:_giveCleanup(Q)end return e end return Observable

function Observable:Subscribe(fireCallback, failCallback, completeCallback)
	local sub = Subscription.new(fireCallback, failCallback, completeCallback)
	local cleanup = self._onSubscribe(sub)

	if cleanup then
		sub:_giveCleanup(cleanup)
	end

	return sub
end

return Observable
