WIP commit 0
WIP commit 1
WIP commit 2
WIP commit 3
final draft.