Avoid circular dependencies between packages! http://www.infoq.com/news/2007/06/large-code-bases 2 common approach, by function or by layer - http://dolszewski.com/architecture/project-package-organization/