Updated with latest comments. Huge thanks to Patricia for reading it so many times.