use collections4 generic type lib