some additions and some edits