Organize code into modules Choose how a file receives its identity, how code loads it, and which declarations it exposes. Import and qualify a declaration Map files to modules Compose portable and targeted fragments Re-export and contribute to a facade Expose or hide a declaration Understand package boundaries Embed a file in the executable Back to language concepts