boost and yamlcpp are completely internal