Split toString from ValueType into IndexableType sub class
Split part of ValueMapping into RootMapping sub class
Improve architecture: single responsibility and immutability for mapping