refactored list operations