add the principle of serialization