including stack implementation