better support for deserialization and maintaining indecies
better type checking
improve deserialization process