Refactored serialization.  It now allows the user to plug into to it via CoreFactoryFunc.  Made some examples too!