19-Large Patch

Major changes in code organization.