https://gist.github.com/cpursley/e3586382c3a42c54ca7f5fef166...
Downside is I haven't found a way to do weighting.
https://gist.github.com/cpursley/e3586382c3a42c54ca7f5fef166...
Downside is I haven't found a way to do weighting.