#3: The locale api deserves its own project