some revisions for clarity