a litter thought about take function as parameter