I think having the delegate provide a service to open a file makes sense. I'll move the responsibility of selecting the source range to the delegate however, and move it out of this method. Sound good?