Moved and edited with notes.