Exportable extension

Resolves #38. This pull request supersedes #159.