Mirror structure of upstream refactoring project, add documentation