mut is not implicit invoke
minor cleanup
pull in boost, random shuffle