list logic