sorry, I'm going to make another style comment: I think we can just use `pop` and `push` here as this is quite clear what you're going to push or pop from this object. That would make things consistent with the way we are implementing `add`, `set`, ... methods elsewhere.