some typos, moved todo, more explicit statements