Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Solarius Scorch

#1
Quote from: jamaicancastle on February 24, 2021, 11:12:31 AM
Some of the ThoughtDefs revolving around humans seem to have changed names at one point or another:
AteHumanIngredient -> AteHumanlikeMeatAsIngredient
KnowButcheredHuman -> KnowButcheredHumanlikeCorpse


If one of your alien race mods is still using the old names, it may cause this error.

Yes indeed, it was exactly that.
#2
Quote from: Shinzy on February 16, 2021, 09:53:08 AM
Just to be clear, I'm going on from an assumption here, The mods you are using are local and not through steam workshop? and you've manually updated them?

Yes indeed, I have a GoG version of RW.

Quote from: Shinzy on February 16, 2021, 09:53:08 AM
If so my immediate hunch would be that there might be a typo in one of the race mods near the thought defs. Something like improperly closed tags or such

That's where I'd start to look myself, I'm by no means an incredible modder, my methods are very cavemanlike ;D

Yeah, this is pretty much what I've tried. But I never thought of anything as trivial as a syntax error, could be a good idea to check.

Quote from: Shinzy on February 16, 2021, 09:53:08 AM
p.s. If you're the same Solarius Scorch who made the X-com files mod, I'm a huge fan!

Wow, thanks! Yeah, it's me :D Never expected to find anyone who's heard of it here; it's pretty nice. :)




EDIT: for some inexplicable reason I'm only getting one error now:

Could not resolve cross-reference: No RimWorld.ThoughtDef named ButcheredHuman found to give to AlienRace.ButcherThought AlienRace.ButcherThought
Verse.Log:Error(String, Boolean)
Verse.WantedRefForObject:TryResolve(FailMode)
Verse.<>c__DisplayClass15_1:<ResolveAllWantedCrossReferences>b__0(WantedRef)
Verse.<>c__DisplayClass6_1`1:<ParallelForEach>b__0(Object)
System.Threading.QueueUserWorkItemCallback:WaitCallback_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.QueueUserWorkItemCallback:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
System.Threading.ThreadPoolWorkQueue:Dispatch()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()


Log here: https://gist.github.com/3f9f4b061fff76af02f8b2f6bb13b145

The investigation continues!




EDIT 2: Case closed, it was the Thrumkin mod... And the bug was already reported. :/
Fixed now, author notified.
#3
I've decided to update HAR from October's version to the current one and I'm getting these two errors:

Could not resolve cross-reference: No RimWorld.ThoughtDef named KnowButcheredHuman found to give to AlienRace.ButcherThought AlienRace.ButcherThought
Verse.Log:Error(String, Boolean)
Verse.WantedRefForObject:TryResolve(FailMode)
Verse.<>c__DisplayClass15_1:<ResolveAllWantedCrossReferences>b__0(WantedRef)
Verse.<>c__DisplayClass6_1`1:<ParallelForEach>b__0(Object)
System.Threading.QueueUserWorkItemCallback:WaitCallback_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.QueueUserWorkItemCallback:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
System.Threading.ThreadPoolWorkQueue:Dispatch()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()


Could not resolve cross-reference: No RimWorld.ThoughtDef named AteHumanIngredient found to give to AlienRace.AteThought AlienRace.AteThought
Verse.Log:Error(String, Boolean)
Verse.WantedRefForObject:TryResolve(FailMode)
Verse.<>c__DisplayClass15_1:<ResolveAllWantedCrossReferences>b__0(WantedRef)
Verse.<>c__DisplayClass6_1`1:<ParallelForEach>b__0(Object)
System.Threading.QueueUserWorkItemCallback:WaitCallback_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.QueueUserWorkItemCallback:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
System.Threading.ThreadPoolWorkQueue:Dispatch()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()


Full log here: https://gist.github.com/d24ee89f7acb889fe4362cf4ebdc60d0

I fixed some other issues by updating or editing race mods, but no idea where to start with these. Help would be appreciated.
#4
Got it... Thanks for sharing, I appreciate it.
Have a good New Year!
#5
Sorry, I have no idea what kind of debugger you're talking about. I don't think I can remove these mods anyway, even for testing purposes, and still be able to load the game at all.

Anyway, things seem to work fine on a new save, so I guess that old one is not salvageable... Oh well.
#6
Many thanks, guys.
To be honest I dropped the game for now, having exhausted my patience to deal with this... But thanks to you, I've decided to give it another try.
I searched the Mods folder for RandomlyUsingTitleAsChance and the only instance I found was in the, well, Hospitality mod. So I disabled it and tried to spawn a trader caravan. And I got this: https://gist.github.com/1009f0ab795cc737177af72846ed57d3

The relevant part is probably this:

Error while generating pawn. Rethrowing. Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Planet.WorldPawns.GetSituation (Verse.Pawn p) [0x0000b] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.Planet.WorldPawns+<>c__DisplayClass27_0.<GetPawnsBySituation>b__0 (Verse.Pawn x) [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
  at System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Verse.GenCollection.TryRandomElementByWeight[T] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] weightSelector, T& result) [0x00186] in <6326ac03f61f45efb3178f3bfd084139>:0
  at Verse.PawnGenerator.GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest request) [0x00144] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) Verse.PawnGenerator.Verse.PawnGenerator.GeneratePawn_Patch4(Verse.PawnGenerationRequest)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

Exception while generating thing set: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Planet.WorldPawns.GetSituation (Verse.Pawn p) [0x0000b] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.Planet.WorldPawns+<>c__DisplayClass27_0.<GetPawnsBySituation>b__0 (Verse.Pawn x) [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
  at System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Verse.GenCollection.TryRandomElementByWeight[T] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] weightSelector, T& result) [0x00186] in <6326ac03f61f45efb3178f3bfd084139>:0
  at Verse.PawnGenerator.GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest request) [0x00144] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) Verse.PawnGenerator.Verse.PawnGenerator.GeneratePawn_Patch4(Verse.PawnGenerationRequest)
  at RimWorld.StockGenerator_Animals+<GenerateThings>d__7.MoveNext () [0x001a1] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.ThingSetMaker_TraderStock.Generate (RimWorld.ThingSetMakerParams parms, System.Collections.Generic.List`1[T] outThings) [0x000e5] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.ThingSetMaker.Generate (RimWorld.ThingSetMakerParams parms) [0x00019] in <6326ac03f61f45efb3178f3bfd084139>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

Error while generating pawn. Rethrowing. Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Planet.WorldPawns.GetSituation (Verse.Pawn p) [0x0000b] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.Planet.WorldPawns+<>c__DisplayClass27_0.<GetPawnsBySituation>b__0 (Verse.Pawn x) [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
  at System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Verse.GenCollection.TryRandomElementByWeight[T] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] weightSelector, T& result) [0x00186] in <6326ac03f61f45efb3178f3bfd084139>:0
  at Verse.PawnGenerator.GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest request) [0x00144] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) Verse.PawnGenerator.Verse.PawnGenerator.GeneratePawn_Patch4(Verse.PawnGenerationRequest)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

Exception while generating pawn group: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Planet.WorldPawns.GetSituation (Verse.Pawn p) [0x0000b] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.Planet.WorldPawns+<>c__DisplayClass27_0.<GetPawnsBySituation>b__0 (Verse.Pawn x) [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
  at System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Verse.GenCollection.TryRandomElementByWeight[T] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] weightSelector, T& result) [0x00186] in <6326ac03f61f45efb3178f3bfd084139>:0
  at Verse.PawnGenerator.GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest request) [0x00144] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) Verse.PawnGenerator.Verse.PawnGenerator.GeneratePawn_Patch4(Verse.PawnGenerationRequest)
  at RimWorld.PawnGroupKindWorker_Trader.GenerateGuards (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, Verse.Pawn trader, System.Collections.Generic.List`1[T] wares, System.Collections.Generic.List`1[T] outPawns) [0x00097] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.PawnGroupKindWorker_Trader.GeneratePawns (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, System.Collections.Generic.List`1[T] outPawns, System.Boolean errorOnZeroResults) [0x00233] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) RimWorld.PawnGroupKindWorker.RimWorld.PawnGroupKindWorker.GeneratePawns_Patch1(RimWorld.PawnGroupKindWorker,RimWorld.PawnGroupMakerParms,RimWorld.PawnGroupMaker,bool)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

(...)

Exception while generating pawn group: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Planet.WorldPawns.GetSituation (Verse.Pawn p) [0x0000b] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.Planet.WorldPawns+<>c__DisplayClass27_0.<GetPawnsBySituation>b__0 (Verse.Pawn x) [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
  at System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Verse.GenCollection.TryRandomElementByWeight[T] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] weightSelector, T& result) [0x00186] in <6326ac03f61f45efb3178f3bfd084139>:0
  at Verse.PawnGenerator.GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest request) [0x00144] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) Verse.PawnGenerator.Verse.PawnGenerator.GeneratePawn_Patch4(Verse.PawnGenerationRequest)
  at RimWorld.PawnGroupKindWorker_Trader.GenerateCarriers (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, Verse.Pawn trader, System.Collections.Generic.List`1[T] wares, System.Collections.Generic.List`1[T] outPawns) [0x0011e] in <6326ac03f61f45efb3178f3bfd084139>:0
  at RimWorld.PawnGroupKindWorker_Trader.GeneratePawns (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, System.Collections.Generic.List`1[T] outPawns, System.Boolean errorOnZeroResults) [0x00228] in <6326ac03f61f45efb3178f3bfd084139>:0
  at (wrapper dynamic-method) RimWorld.PawnGroupKindWorker.RimWorld.PawnGroupKindWorker.GeneratePawns_Patch1(RimWorld.PawnGroupKindWorker,RimWorld.PawnGroupMakerParms,RimWorld.PawnGroupMaker,bool)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)


However, after I tried doing the same on a new colony, everything went fine: the caravan spawned (with delay, as I'm using a mod to detect movement ahead of time), with a trader, and the trader was just fine as well.

Any ideas what can be wrong with my current campaign and how to fix it? I know it's an extremely hard question, but maybe you have some idea.
#7
I may get no errors, but I'm still not getting any guests... :-\

I just happened to have a mechanoid problem and I got a message that guests are afraid to enter due to that; when I said yes, they still were not generated. Here's what the log says:

Hospitality: Something failed when setting up visitors from faction Pond Cryptodome League (luminous aurora):
System.NullReferenceException: Object reference not set to an instance of an object
  at Hospitality.SpawnGroupUtility.ValidGuest (Verse.Pawn pawn, RimWorld.Faction faction) [0x00008] in <e43536b7e9794111ae228f0955444338>:0
  at Hospitality.SpawnGroupUtility+<>c__DisplayClass9_0.<GetKnownPawns>b__0 (Verse.Pawn pawn) [0x00000] in <e43536b7e9794111ae228f0955444338>:0
  at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Hospitality.SpawnGroupUtility+<RandomlyUsingTitleAsChance>d__11.MoveNext () [0x000ca] in <e43536b7e9794111ae228f0955444338>:0
  at System.Collections.Generic.List`1[T]..ctor (System.Collections.Generic.IEnumerable`1[T] collection) [0x00077] in <567df3e0919241ba98db88bec4c6696f>:0
  at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x00018] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Verse.GenCollection+<InRandomOrder>d__4`1[T].MoveNext () [0x00035] in <6326ac03f61f45efb3178f3bfd084139>:0
  at System.Linq.Enumerable+EnumerablePartition`1[TSource].ToList () [0x0001b] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at Hospitality.IncidentWorker_VisitorGroup.GetPawnsToSpawn (RimWorld.IncidentParms parms) [0x0002d] in <e43536b7e9794111ae228f0955444338>:0
  at Hospitality.IncidentWorker_VisitorGroup.SpawnPawns (RimWorld.IncidentParms parms, System.Collections.Generic.List`1[T] spawned) [0x0000c] in <e43536b7e9794111ae228f0955444338>:0
  at Hospitality.IncidentWorker_VisitorGroup.SpawnGroup (RimWorld.IncidentParms parms, Verse.Map map) [0x00006] in <e43536b7e9794111ae228f0955444338>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)


I assume the problem happens all the time, but usually there's no warning.

The entire log can be found here: https://gist.github.com/HugsLibRecordKeeper/e44869d96efb9614eab5d539fe33236f
#8
Well it was a busy Saturday, and I managed to locate the culprit. To my surprise, it was Vanilla Apparel Expanded...

I'm testing the game without it now, hopefully the trader issue will disappear.

EDIT:
WHAT THE ACTUAL F*CK.

As mentioned before, I removed Vanilla Apparel Expanded, and all the red errors disappeared (apart from a long list of missing defs of things from that mod). I tested, it worked okay, played for a few hours but no visitors came. So I wanted to play again, I launched the game, and lo and behold, all red messages are there again (and the missing VAE defs no longer show up). Yes, the mod I disabled is still disabled. Proof here.

At this point I feel like some malicious AI is trolling me, because this doesn't make any sense. I just want my fucking traders, and visitors!

EDIT:
Spent the last few days building all my mod list from ground up, one by one. Now it's pristine and no log appears at all at game start. Hopefully this will be enough to solve all the issues.
Many thanks, Canute, for responding to my ramblings. I really appreciate it!
#9
Gotcha, thanks.
I think I resolved that issue with HAR, as well as with FertilitySource (found a solution somewhere on Steam).

Yet.. the story continues! I got a mechanoid psychic ship, and before I resolved it, I got a message that visitors are afraid to enter due to that, and I told them to come... yet nobody came. Therefore it appears that the issue is not resolved.

The current log is here, and I'll appreciate yet another attempt at assistance. This time I get two red errors (except for missing Real Ruins stuff):

"Could not resolve cross-reference: No RimWorld.StatDef named SmithingSpeed found to give to Verse.RecipeMakerProperties Verse.RecipeMakerProperties"
"Could not resolve cross-reference: No RimWorld.StatDef named Radiation found to give to RimWorld.StatModifier (null stat)"

Both SmithingSpeed and Radiation are present in tons of mods, some of them very new, so I don 't think it's inherently wrong. But I don't know any more...
#10
Quote from: Canute on November 17, 2020, 10:58:36 AM
Solarius Scorch,
another thing is you should throw out mods that cause errors at rimworld startup/mod activation.
They mosttimes don't work correct or missing function/items.
When you got these XML errors at example you could take a string from the msg. like "RGBA(0.18,0.27,0.10,1)" and search inside the Mods folder for it.

Yeah, that's what I meant by HAR issues.
Sure I could do that, but all my saves are rife with non-humans, so removing them would not be a solution - there is little point having a 0100% functional game which I can't really play anyway.
If we were 100% sure that all alien mods are bad (because honestly that's how it looks like; for example Orassans were update recently, should be fully compatible with HAR, yet still throw such errors - I tested with Orassans and HAR only), then okay, I could start over with only humans, I guess... But I really don't believe it's the case, since legions of people play with aliens with no trader issues.

EDIT: huh, Orassans don't throw any errors now. OK, I'll go through the damn list again...

#11
Yeah I know, experimented with this too. But seeing as my save is inexplicably broken due to Rimefeller, I don't think I can do much. Perhaps editing all Rimefeller stuff out from the save will help. If not, I'll wait for a while until the crashing waves subside on the modding front and then transplant my people to a new save/planet.

I just wanted to trade, dammit!

Many thanks for listening to my issues, I really appreciate that.

---- EDIT ---

Well, it's me again. Sorry to be such a bother, but I hope to get more help on pretty much the same issue.

To resolve the problem, I:
Reorganized my mods according to Trisscar's guide.
* Removed several mods which were either outdated or known to cause issues, like Nature Is Pretty Sweet. (Hand-edited the save to remove any references to them.)
* Worked on resolving any red errors. I did not succeed completely, because I am left with:
  - Some warnings regarding to Humanoid Alien Races (probably due to the recent changes in HAR),
  - Some issues with seeds I don't understand,
  - References to (I presume) Real Ruins stuff which is no longer present in my game, due to uninstalled mods.

I don't think any of these should mess with traders. Yet I am still having the same problem: when a caravan arrives, there is no trader among them.
On a side note (probably related), I'm not getting any guests from Orion's Hospitality mod. I do occasionally get passer-bys, though.

Here's a log generated right after a trading caravan arrives. I would really appreciate it if I could get some advice: https://gist.github.com/HugsLibRecordKeeper/9075d7f447f5e831091f63834805bff9

#12
Support / Re: Colonist save-to-save transplantation
October 27, 2020, 10:25:47 AM
Not specifically, because everything was fine before the transplantation, so I figured it was something with the copying process.
I'll check if they sleep in the original save.
#13
Support / Re: Colonist save-to-save transplantation
October 27, 2020, 09:40:33 AM
Thanks, I'll give it a try. It looks like exactly what I need!

Another issue I met was that transplaned pawns... refuse to sleep. They collapse from exhaustion, but they won't use their bedrolls, even when manually assigned. What could be the issue?
#14
Support / Colonist save-to-save transplantation
October 26, 2020, 02:40:32 PM
My save game got corrupted (for unclear reasons, probably related to mod updates), so I decided to start a new colony and move my old group there by editing the save. This was generally successful: I all my old pawns are available, they have their gear and they remember their relations. However, one thing is missing: two guys are brothers, and the new save does not recognize them as such (only as friends). Can someone please advise how to fix it?
#15
Mods / Re: Deterministic raiding parties
October 26, 2020, 08:36:25 AM
You probably mean the Spotted mod. It has a 1.2 version, released by Mlie: https://steamcommunity.com/sharedfiles/filedetails/?id=2043957460

As for your other questions, sorry, I don't know of any mod which could do exactly that.