Tensor/TensorImpl encapsulation
None property/method of TensorImple should be public, only a Tensor should be able to access some of them. Use a Key/Keyring pattern for fine grain friendness (this pattern has an implementation as a Thalia utility and can be get from there).