collect and implement usefull function