Ok I will have a look at splitting it up a bit, unfortunately a lot of the defensiveness is as a result of making the stuff around making passing a locale in still work...

a separate method would be nice though...