It would be good to post code that works: function baseID newID if (newID is not empty and not exists(newID)) or \ (newID is empty and not exists(the baseID of this stack)) then \ set the baseID of this stack to "this card" if newID is not empty then set the baseID of this stack to newID return the baseID of this stack end baseID