Getting started with modules

Some of the API's documented here are still in flux, might need to change the docs before merging