function RxInstanceUtils.observeProperty(n,R)assert(typeof(n)=="\073\110\115\116\097\110\099\101","\'\105\110\115\116\097\110\099\101\' \115\104\111\117\108\100 \098\101 \111\102 \116\121\112\101 \073\110\115\116\097\110\099\101")assert(type(R)=="\115\116\114\105\110\103","\'\112\114\111\112\101\114\116\121\078\097\109\101\' \115\104\111\117\108\100 \098\101 \111\102 \116\121\112\101 \115\116\114\105\110\103")return Observable.new(function(Y)local z=Maid.new()z:GiveTask((n:GetPropertyChangedSignal(R)):Connect(function()Y:Fire(n[R],n)end))Y:Fire(n[R],n)return z end)end

function RxInstanceUtils.observeProperty(instance, propertyName)
	assert(typeof(instance) == "Instance", "'instance' should be of type Instance")
	assert(type(propertyName) == "string", "'propertyName' should be of type string")

	return Observable.new(function(sub)
		local maid = Maid.new()

		maid:GiveTask(instance:GetPropertyChangedSignal(propertyName):Connect(function()
			sub:Fire(instance[propertyName], instance)
		end))
		sub:Fire(instance[propertyName], instance)

		return maid
	end)
end
