The nuts and bolts of cooperative learning