Now with preferences to remember last expand/contract state