box, heap and stack