Refactored generics.