Construct the entire chain in advance, instead of iteratively validating each hop during processing.
Add distance compliance to chain selection