Refactor everything; document most of it
Don't ignore m4