There are many design challenges that must be addressed in the development of collaborative scientific discovery learning environments. This contribution presents an overview of how these challenges were addressed within Co-Lab, a collaborative learning environment in which groups of learners can experiment through simulations and remote laboratories, and express acquired understanding in a runnable computer model. Co-Lab's architecture is introduced and explicated from the perspective of addressing typical problem areas for students within collaborative discovery learning. From this view the processes of collaboration, inquiry, and modeling are presented with a description of how they have been supported in the past and how they are supported within Co-Lab's design and tools. Finally, a research agenda is proposed for collaborative discovery learning with the Co-Lab environment.