Heap vs stack, value type vs reference type