adding latest version of filesystem from different branch
added some interface things I missed and fixed compaction error