Refactored list types to use generics