lists refactored + covered by unit tests