first working version with shuffle - but breaks lots of existing tests