now using extract/inject/purge semantics
flake8-ed