each function returns a list of values rather than vector