single stack approach