diff --git a/GenerateCode.py b/codegen/GenerateCode.py similarity index 100% rename from GenerateCode.py rename to codegen/GenerateCode.py diff --git a/JsonDescriptionOfGithubApiV3/description.000.human_readable.json b/codegen/JsonDescriptionOfGithubApiV3/description.000.human_readable.json similarity index 100% rename from JsonDescriptionOfGithubApiV3/description.000.human_readable.json rename to codegen/JsonDescriptionOfGithubApiV3/description.000.human_readable.json diff --git a/JsonDescriptionOfGithubApiV3/description.001.normalized.json b/codegen/JsonDescriptionOfGithubApiV3/description.001.normalized.json similarity index 100% rename from JsonDescriptionOfGithubApiV3/description.001.normalized.json rename to codegen/JsonDescriptionOfGithubApiV3/description.001.normalized.json diff --git a/JsonDescriptionOfGithubApiV3/normalize.py b/codegen/JsonDescriptionOfGithubApiV3/normalize.py similarity index 100% rename from JsonDescriptionOfGithubApiV3/normalize.py rename to codegen/JsonDescriptionOfGithubApiV3/normalize.py diff --git a/CodeGenerator/templates/GithubObject.Concatenation.py b/codegen/templates/GithubObject.Concatenation.py similarity index 100% rename from CodeGenerator/templates/GithubObject.Concatenation.py rename to codegen/templates/GithubObject.Concatenation.py diff --git a/CodeGenerator/templates/GithubObject.MethodBody.DoRequest.py b/codegen/templates/GithubObject.MethodBody.DoRequest.py similarity index 100% rename from CodeGenerator/templates/GithubObject.MethodBody.DoRequest.py rename to codegen/templates/GithubObject.MethodBody.DoRequest.py diff --git a/CodeGenerator/templates/GithubObject.MethodBody.UseResult.py b/codegen/templates/GithubObject.MethodBody.UseResult.py similarity index 100% rename from CodeGenerator/templates/GithubObject.MethodBody.UseResult.py rename to codegen/templates/GithubObject.MethodBody.UseResult.py diff --git a/CodeGenerator/templates/GithubObject.Parameters.py b/codegen/templates/GithubObject.Parameters.py similarity index 100% rename from CodeGenerator/templates/GithubObject.Parameters.py rename to codegen/templates/GithubObject.Parameters.py diff --git a/CodeGenerator/templates/GithubObject.py b/codegen/templates/GithubObject.py similarity index 100% rename from CodeGenerator/templates/GithubObject.py rename to codegen/templates/GithubObject.py diff --git a/CodeGenerator/templates/ReferenceOfClasses.Parameters.md b/codegen/templates/ReferenceOfClasses.Parameters.md similarity index 100% rename from CodeGenerator/templates/ReferenceOfClasses.Parameters.md rename to codegen/templates/ReferenceOfClasses.Parameters.md diff --git a/CodeGenerator/templates/ReferenceOfClasses.Type.md b/codegen/templates/ReferenceOfClasses.Type.md similarity index 100% rename from CodeGenerator/templates/ReferenceOfClasses.Type.md rename to codegen/templates/ReferenceOfClasses.Type.md diff --git a/CodeGenerator/templates/ReferenceOfClasses.md b/codegen/templates/ReferenceOfClasses.md similarity index 100% rename from CodeGenerator/templates/ReferenceOfClasses.md rename to codegen/templates/ReferenceOfClasses.md diff --git a/Design.md b/doc/Design.md similarity index 100% rename from Design.md rename to doc/Design.md diff --git a/ReferenceOfApis.md b/doc/ReferenceOfApis.md similarity index 100% rename from ReferenceOfApis.md rename to doc/ReferenceOfApis.md diff --git a/ReferenceOfClasses.md b/doc/ReferenceOfClasses.md similarity index 100% rename from ReferenceOfClasses.md rename to doc/ReferenceOfClasses.md diff --git a/github/GithubObjects/__init__.py b/github/GithubObjects/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/github/GithubObjects/AuthenticatedUser.py b/src/github/AuthenticatedUser.py similarity index 100% rename from github/GithubObjects/AuthenticatedUser.py rename to src/github/AuthenticatedUser.py diff --git a/github/GithubObjects/Authorization.py b/src/github/Authorization.py similarity index 100% rename from github/GithubObjects/Authorization.py rename to src/github/Authorization.py diff --git a/github/GithubObjects/Branch.py b/src/github/Branch.py similarity index 100% rename from github/GithubObjects/Branch.py rename to src/github/Branch.py diff --git a/github/GithubObjects/Commit.py b/src/github/Commit.py similarity index 100% rename from github/GithubObjects/Commit.py rename to src/github/Commit.py diff --git a/github/GithubObjects/CommitComment.py b/src/github/CommitComment.py similarity index 100% rename from github/GithubObjects/CommitComment.py rename to src/github/CommitComment.py diff --git a/github/GithubObjects/Download.py b/src/github/Download.py similarity index 100% rename from github/GithubObjects/Download.py rename to src/github/Download.py diff --git a/github/GithubObjects/Event.py b/src/github/Event.py similarity index 100% rename from github/GithubObjects/Event.py rename to src/github/Event.py diff --git a/github/GenerateReferenceOfApis.py b/src/github/GenerateReferenceOfApis.py similarity index 100% rename from github/GenerateReferenceOfApis.py rename to src/github/GenerateReferenceOfApis.py diff --git a/github/GenerateReferenceOfClasses.py b/src/github/GenerateReferenceOfClasses.py similarity index 100% rename from github/GenerateReferenceOfClasses.py rename to src/github/GenerateReferenceOfClasses.py diff --git a/github/GithubObjects/Gist.py b/src/github/Gist.py similarity index 100% rename from github/GithubObjects/Gist.py rename to src/github/Gist.py diff --git a/github/GithubObjects/GistComment.py b/src/github/GistComment.py similarity index 100% rename from github/GithubObjects/GistComment.py rename to src/github/GistComment.py diff --git a/github/GithubObjects/GitAuthor.py b/src/github/GitAuthor.py similarity index 100% rename from github/GithubObjects/GitAuthor.py rename to src/github/GitAuthor.py diff --git a/github/GithubObjects/GitBlob.py b/src/github/GitBlob.py similarity index 100% rename from github/GithubObjects/GitBlob.py rename to src/github/GitBlob.py diff --git a/github/GithubObjects/GitCommit.py b/src/github/GitCommit.py similarity index 100% rename from github/GithubObjects/GitCommit.py rename to src/github/GitCommit.py diff --git a/github/GithubObjects/GitRef.py b/src/github/GitRef.py similarity index 100% rename from github/GithubObjects/GitRef.py rename to src/github/GitRef.py diff --git a/github/GithubObjects/GitTag.py b/src/github/GitTag.py similarity index 100% rename from github/GithubObjects/GitTag.py rename to src/github/GitTag.py diff --git a/github/GithubObjects/GitTree.py b/src/github/GitTree.py similarity index 100% rename from github/GithubObjects/GitTree.py rename to src/github/GitTree.py diff --git a/github/Github.py b/src/github/Github.py similarity index 100% rename from github/Github.py rename to src/github/Github.py diff --git a/github/GithubObjects/Hook.py b/src/github/Hook.py similarity index 100% rename from github/GithubObjects/Hook.py rename to src/github/Hook.py diff --git a/github/GithubObjects/Issue.py b/src/github/Issue.py similarity index 100% rename from github/GithubObjects/Issue.py rename to src/github/Issue.py diff --git a/github/GithubObjects/IssueComment.py b/src/github/IssueComment.py similarity index 100% rename from github/GithubObjects/IssueComment.py rename to src/github/IssueComment.py diff --git a/github/GithubObjects/IssueEvent.py b/src/github/IssueEvent.py similarity index 100% rename from github/GithubObjects/IssueEvent.py rename to src/github/IssueEvent.py diff --git a/github/GithubObjects/Label.py b/src/github/Label.py similarity index 100% rename from github/GithubObjects/Label.py rename to src/github/Label.py diff --git a/github/GithubObjects/Milestone.py b/src/github/Milestone.py similarity index 100% rename from github/GithubObjects/Milestone.py rename to src/github/Milestone.py diff --git a/github/GithubObjects/NamedUser.py b/src/github/NamedUser.py similarity index 100% rename from github/GithubObjects/NamedUser.py rename to src/github/NamedUser.py diff --git a/github/GithubObjects/Organization.py b/src/github/Organization.py similarity index 100% rename from github/GithubObjects/Organization.py rename to src/github/Organization.py diff --git a/github/GithubObjects/PaginatedList.py b/src/github/PaginatedList.py similarity index 100% rename from github/GithubObjects/PaginatedList.py rename to src/github/PaginatedList.py diff --git a/github/GithubObjects/Plan.py b/src/github/Plan.py similarity index 100% rename from github/GithubObjects/Plan.py rename to src/github/Plan.py diff --git a/github/GithubObjects/PullRequest.py b/src/github/PullRequest.py similarity index 100% rename from github/GithubObjects/PullRequest.py rename to src/github/PullRequest.py diff --git a/github/GithubObjects/PullRequestComment.py b/src/github/PullRequestComment.py similarity index 100% rename from github/GithubObjects/PullRequestComment.py rename to src/github/PullRequestComment.py diff --git a/github/GithubObjects/PullRequestFile.py b/src/github/PullRequestFile.py similarity index 100% rename from github/GithubObjects/PullRequestFile.py rename to src/github/PullRequestFile.py diff --git a/github/GithubObjects/Repository.py b/src/github/Repository.py similarity index 100% rename from github/GithubObjects/Repository.py rename to src/github/Repository.py diff --git a/github/GithubObjects/RepositoryKey.py b/src/github/RepositoryKey.py similarity index 100% rename from github/GithubObjects/RepositoryKey.py rename to src/github/RepositoryKey.py diff --git a/github/Requester.py b/src/github/Requester.py similarity index 100% rename from github/Requester.py rename to src/github/Requester.py diff --git a/github/GithubObjects/Tag.py b/src/github/Tag.py similarity index 100% rename from github/GithubObjects/Tag.py rename to src/github/Tag.py diff --git a/github/GithubObjects/Team.py b/src/github/Team.py similarity index 100% rename from github/GithubObjects/Team.py rename to src/github/Team.py diff --git a/github/GithubObjects/UserKey.py b/src/github/UserKey.py similarity index 100% rename from github/GithubObjects/UserKey.py rename to src/github/UserKey.py diff --git a/github/__init__.py b/src/github/__init__.py similarity index 100% rename from github/__init__.py rename to src/github/__init__.py diff --git a/IntegrationTest.py b/test/IntegrationTest.py similarity index 100% rename from IntegrationTest.py rename to test/IntegrationTest.py diff --git a/NewIntegrationTest.py b/test/NewIntegrationTest.py similarity index 100% rename from NewIntegrationTest.py rename to test/NewIntegrationTest.py diff --git a/ReplayDataForIntegrationTest/AuthenticatedUserDetails.txt b/test/ReplayDataForIntegrationTest/AuthenticatedUserDetails.txt similarity index 100% rename from ReplayDataForIntegrationTest/AuthenticatedUserDetails.txt rename to test/ReplayDataForIntegrationTest/AuthenticatedUserDetails.txt diff --git a/ReplayDataForIntegrationTest/Colaborators.txt b/test/ReplayDataForIntegrationTest/Colaborators.txt similarity index 100% rename from ReplayDataForIntegrationTest/Colaborators.txt rename to test/ReplayDataForIntegrationTest/Colaborators.txt diff --git a/ReplayDataForIntegrationTest/CommentCommit.txt b/test/ReplayDataForIntegrationTest/CommentCommit.txt similarity index 100% rename from ReplayDataForIntegrationTest/CommentCommit.txt rename to test/ReplayDataForIntegrationTest/CommentCommit.txt diff --git a/ReplayDataForIntegrationTest/CreateForkForOrganization.txt b/test/ReplayDataForIntegrationTest/CreateForkForOrganization.txt similarity index 100% rename from ReplayDataForIntegrationTest/CreateForkForOrganization.txt rename to test/ReplayDataForIntegrationTest/CreateForkForOrganization.txt diff --git a/ReplayDataForIntegrationTest/CreateRepoForOrganization.txt b/test/ReplayDataForIntegrationTest/CreateRepoForOrganization.txt similarity index 100% rename from ReplayDataForIntegrationTest/CreateRepoForOrganization.txt rename to test/ReplayDataForIntegrationTest/CreateRepoForOrganization.txt diff --git a/ReplayDataForIntegrationTest/CreateRepoForUser.txt b/test/ReplayDataForIntegrationTest/CreateRepoForUser.txt similarity index 100% rename from ReplayDataForIntegrationTest/CreateRepoForUser.txt rename to test/ReplayDataForIntegrationTest/CreateRepoForUser.txt diff --git a/ReplayDataForIntegrationTest/Downloads.txt b/test/ReplayDataForIntegrationTest/Downloads.txt similarity index 100% rename from ReplayDataForIntegrationTest/Downloads.txt rename to test/ReplayDataForIntegrationTest/Downloads.txt diff --git a/ReplayDataForIntegrationTest/EditAuthenticatedUser.txt b/test/ReplayDataForIntegrationTest/EditAuthenticatedUser.txt similarity index 100% rename from ReplayDataForIntegrationTest/EditAuthenticatedUser.txt rename to test/ReplayDataForIntegrationTest/EditAuthenticatedUser.txt diff --git a/ReplayDataForIntegrationTest/EditOrganization.txt b/test/ReplayDataForIntegrationTest/EditOrganization.txt similarity index 100% rename from ReplayDataForIntegrationTest/EditOrganization.txt rename to test/ReplayDataForIntegrationTest/EditOrganization.txt diff --git a/ReplayDataForIntegrationTest/EditOrganizationTeamAndMembers.txt b/test/ReplayDataForIntegrationTest/EditOrganizationTeamAndMembers.txt similarity index 100% rename from ReplayDataForIntegrationTest/EditOrganizationTeamAndMembers.txt rename to test/ReplayDataForIntegrationTest/EditOrganizationTeamAndMembers.txt diff --git a/ReplayDataForIntegrationTest/Emails.txt b/test/ReplayDataForIntegrationTest/Emails.txt similarity index 100% rename from ReplayDataForIntegrationTest/Emails.txt rename to test/ReplayDataForIntegrationTest/Emails.txt diff --git a/ReplayDataForIntegrationTest/Events.txt b/test/ReplayDataForIntegrationTest/Events.txt similarity index 100% rename from ReplayDataForIntegrationTest/Events.txt rename to test/ReplayDataForIntegrationTest/Events.txt diff --git a/ReplayDataForIntegrationTest/Follow.txt b/test/ReplayDataForIntegrationTest/Follow.txt similarity index 100% rename from ReplayDataForIntegrationTest/Follow.txt rename to test/ReplayDataForIntegrationTest/Follow.txt diff --git a/ReplayDataForIntegrationTest/Gists.txt b/test/ReplayDataForIntegrationTest/Gists.txt similarity index 100% rename from ReplayDataForIntegrationTest/Gists.txt rename to test/ReplayDataForIntegrationTest/Gists.txt diff --git a/ReplayDataForIntegrationTest/GistsAll.txt b/test/ReplayDataForIntegrationTest/GistsAll.txt similarity index 100% rename from ReplayDataForIntegrationTest/GistsAll.txt rename to test/ReplayDataForIntegrationTest/GistsAll.txt diff --git a/ReplayDataForIntegrationTest/GitObjects.txt b/test/ReplayDataForIntegrationTest/GitObjects.txt similarity index 100% rename from ReplayDataForIntegrationTest/GitObjects.txt rename to test/ReplayDataForIntegrationTest/GitObjects.txt diff --git a/ReplayDataForIntegrationTest/GitObjectsAlternative.txt b/test/ReplayDataForIntegrationTest/GitObjectsAlternative.txt similarity index 100% rename from ReplayDataForIntegrationTest/GitObjectsAlternative.txt rename to test/ReplayDataForIntegrationTest/GitObjectsAlternative.txt diff --git a/ReplayDataForIntegrationTest/Hooks.txt b/test/ReplayDataForIntegrationTest/Hooks.txt similarity index 100% rename from ReplayDataForIntegrationTest/Hooks.txt rename to test/ReplayDataForIntegrationTest/Hooks.txt diff --git a/ReplayDataForIntegrationTest/IssuesAndMilestones.txt b/test/ReplayDataForIntegrationTest/IssuesAndMilestones.txt similarity index 100% rename from ReplayDataForIntegrationTest/IssuesAndMilestones.txt rename to test/ReplayDataForIntegrationTest/IssuesAndMilestones.txt diff --git a/ReplayDataForIntegrationTest/IssuesForAuthenticatedUser.txt b/test/ReplayDataForIntegrationTest/IssuesForAuthenticatedUser.txt similarity index 100% rename from ReplayDataForIntegrationTest/IssuesForAuthenticatedUser.txt rename to test/ReplayDataForIntegrationTest/IssuesForAuthenticatedUser.txt diff --git a/ReplayDataForIntegrationTest/Keys.txt b/test/ReplayDataForIntegrationTest/Keys.txt similarity index 100% rename from ReplayDataForIntegrationTest/Keys.txt rename to test/ReplayDataForIntegrationTest/Keys.txt diff --git a/ReplayDataForIntegrationTest/MergePullRequest.txt b/test/ReplayDataForIntegrationTest/MergePullRequest.txt similarity index 100% rename from ReplayDataForIntegrationTest/MergePullRequest.txt rename to test/ReplayDataForIntegrationTest/MergePullRequest.txt diff --git a/ReplayDataForIntegrationTest/NamedUserDetails.txt b/test/ReplayDataForIntegrationTest/NamedUserDetails.txt similarity index 100% rename from ReplayDataForIntegrationTest/NamedUserDetails.txt rename to test/ReplayDataForIntegrationTest/NamedUserDetails.txt diff --git a/ReplayDataForIntegrationTest/OrganizationDetails.txt b/test/ReplayDataForIntegrationTest/OrganizationDetails.txt similarity index 100% rename from ReplayDataForIntegrationTest/OrganizationDetails.txt rename to test/ReplayDataForIntegrationTest/OrganizationDetails.txt diff --git a/ReplayDataForIntegrationTest/PullRequest.txt b/test/ReplayDataForIntegrationTest/PullRequest.txt similarity index 100% rename from ReplayDataForIntegrationTest/PullRequest.txt rename to test/ReplayDataForIntegrationTest/PullRequest.txt diff --git a/ReplayDataForIntegrationTest/RepositoryCompare.txt b/test/ReplayDataForIntegrationTest/RepositoryCompare.txt similarity index 100% rename from ReplayDataForIntegrationTest/RepositoryCompare.txt rename to test/ReplayDataForIntegrationTest/RepositoryCompare.txt diff --git a/ReplayDataForIntegrationTest/RepositoryDetails.txt b/test/ReplayDataForIntegrationTest/RepositoryDetails.txt similarity index 100% rename from ReplayDataForIntegrationTest/RepositoryDetails.txt rename to test/ReplayDataForIntegrationTest/RepositoryDetails.txt diff --git a/ReplayDataForIntegrationTest/RepositoryKeys.txt b/test/ReplayDataForIntegrationTest/RepositoryKeys.txt similarity index 100% rename from ReplayDataForIntegrationTest/RepositoryKeys.txt rename to test/ReplayDataForIntegrationTest/RepositoryKeys.txt diff --git a/ReplayDataForIntegrationTest/Watch.txt b/test/ReplayDataForIntegrationTest/Watch.txt similarity index 100% rename from ReplayDataForIntegrationTest/Watch.txt rename to test/ReplayDataForIntegrationTest/Watch.txt diff --git a/ReplayDataForNewIntegrationTest/AuthenticatedUser.testAttributes.txt b/test/ReplayDataForNewIntegrationTest/AuthenticatedUser.testAttributes.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/AuthenticatedUser.testAttributes.txt rename to test/ReplayDataForNewIntegrationTest/AuthenticatedUser.testAttributes.txt diff --git a/ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithAllArguments.txt b/test/ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithAllArguments.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithAllArguments.txt rename to test/ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithAllArguments.txt diff --git a/ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithoutArguments.txt b/test/ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithoutArguments.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithoutArguments.txt rename to test/ReplayDataForNewIntegrationTest/AuthenticatedUser.testEditWithoutArguments.txt diff --git a/ReplayDataForNewIntegrationTest/GitBlob.setUp.txt b/test/ReplayDataForNewIntegrationTest/GitBlob.setUp.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/GitBlob.setUp.txt rename to test/ReplayDataForNewIntegrationTest/GitBlob.setUp.txt diff --git a/ReplayDataForNewIntegrationTest/GitCommit.setUp.txt b/test/ReplayDataForNewIntegrationTest/GitCommit.setUp.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/GitCommit.setUp.txt rename to test/ReplayDataForNewIntegrationTest/GitCommit.setUp.txt diff --git a/ReplayDataForNewIntegrationTest/GitTree.setUp.txt b/test/ReplayDataForNewIntegrationTest/GitTree.setUp.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/GitTree.setUp.txt rename to test/ReplayDataForNewIntegrationTest/GitTree.setUp.txt diff --git a/ReplayDataForNewIntegrationTest/GitTree.testAttributes.txt b/test/ReplayDataForNewIntegrationTest/GitTree.testAttributes.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/GitTree.testAttributes.txt rename to test/ReplayDataForNewIntegrationTest/GitTree.testAttributes.txt diff --git a/ReplayDataForNewIntegrationTest/Repository.setUp.txt b/test/ReplayDataForNewIntegrationTest/Repository.setUp.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/Repository.setUp.txt rename to test/ReplayDataForNewIntegrationTest/Repository.setUp.txt diff --git a/ReplayDataForNewIntegrationTest/Repository.testAttributes.txt b/test/ReplayDataForNewIntegrationTest/Repository.testAttributes.txt similarity index 100% rename from ReplayDataForNewIntegrationTest/Repository.testAttributes.txt rename to test/ReplayDataForNewIntegrationTest/Repository.testAttributes.txt