read purpose