hmm probably the way the moo evaluates not lazily enough?
ie will (valid(#-1) && #-1.location) cause an invalid indrection since
#-1.location won't work? hmm most things would take an expression like that and not get an error because valid(#-1) is false so it doesn't matter what's after the &&
ohh well I guess I will fix it, but the prob is that one of the pens somewhere is in a room. I think. or maybe it's at #-1?