refactored list module