Avoiding the primitive obsession

Creates a concept of an ivar which carries the knowledge on how be serialized and how be unserialized.
Implements loading from `Hash`