Moose is a language-independent environment for reverse- and re-engineering complex software systems. Moose provides a set of services including a common meta-model, metrics evaluation and visualization, a model repository, and generic GUI support for querying, browsing and grouping. The development effort invested in Moose has paid off in precisely those research activities that benefit from applying a combination of complementary techniques. We describe how Moose has evolved over the years, we draw a number of lessons learned from our experience, and we outline the present and future of Moose.