Can some of this move to the Stack baseclass?