add serialize interface