refactored List a bit