Implement WSPD
Use queue version of WSPD
Move dist func
Merge branch 'dev/recurse'

* dev/recurse:
  Move dist func
  Use queue version of WSPD