using boost::propertytree for serialization