I realize there is not much value in having this if most of the logic is in the observer class, so I would especially appreciate suggestions for how to resolve the issue of keeping the fragment observers internal classes (i.e. not exposing them) without losing the access to the underlying fragment.

One option would be to pass the fragment into the create function to begin with instead of exposing it through the source observer? e.g.:

`observeInForeground(sourceSequence, fragment)`