fix conflict
add VS sln file
impl tree compaction