I am looking over your library, and have a couple of comments:
First, just as an alternate way of thinking (your way works perfectly fine), you could change take_stash() as such:
When you define success, you could make the line
boolean success = false;
Then you could get rid of the else...