http://stackoverflow.com/questions/9382167/serializing-object-that-contains-cyclic-object-value