First revised commit of what wyatt has done so far. Our development
should start from this point.
Merge remote-tracking branch 'origin/master'