Refactors logic a bit by introducing a `when_not_implemented` method
Changelog for #422 [ci skip]