Heavy refactoring. Adds `deferize.sync`.