final ProjectManager refactor and docs