Finished first draft of the (de)serialization.
Organized classes in a nicer package structure.
Reduced code replication.
Created a test suite for convenience.
Introduced property (de)serialization