Create an interface, so that - tensors can be used via shared ptrs rather than stack objects - adding sparse, ragged tensor shall be easier