Initial basic functionality for the extension.

@zoek1 what do we need to take out the WIP patch?