shuffle works, but needs more checks