First attempt at documentation. More to come.