Yes, I've had to be careful about this, and it is indeed confusing when editing. It is also a little confusing when reasoning about the objects in code: a `Source` has `bandflux()` and `flux()` methods, and a `Model()` has the same methods, but they do different things.

A solution for the editing problem is to separate the classes into two files: `sources.py` and `model.py`. In fact, it would probably have to be three files. `PropagationEffects` don't fit in either of the above, so they'd go in `effects.py`. I think I didn't do this in the past because there is an issue with circular imports (both `Source` and `Model` derive from the `_ModelBase`, so it would have to be four files.... ugh.

The user confusion between `Source` and `Model` is still a problem, but changing the names of the methods in `Source` doesn't seem like the right solution to me... having a `restbandflux_rcov` method implies to me that there is a non-rest frame equivalent in the same class, which is not the case.

It may be possible to resolve this by moving functionality from `Source` to `Model`, but let's save that for a different PR.