added boost, using to implement serializable