add shuffle/shift buttons
tighten up rendering code and support defined order for rows