The nice thing about the type of solution is that it works at higher levels of complexities. As long as your objects can properly save/load then it should continue work. The stream flattens out the data which makes it easy to move then the object reads it back and figures out what to do with it. This opens up all sorts of possibilities for future growth. If you extend this a bit more you can have a general persistent framework that can be used in all your projects. Hmm.. just some random thoughts.

This has been a good exercise as it has help me as well to define some things that's been on my to-do list. Coolness.