SMS: Unfolding Abstract Datatypes