no need for explicit stack object