add serialize func