Refactor selection_ptr push/pop logic.

Should make more sense now.