remove extension.remove, fix up tests
document lib/index
progress
refactor and document compiler and write hook