closer to functional