Don't catch Throwable
Don't ever call chain on abstract override.
Formatting
Allow status on propagate
Don't cache empty content
Small DRY refactor