I think this method is complicated enough that it would be a good idea to outline what it does.