Heap via structs. Will abandon for array imp