Extract and encapsulate Celestial and Vessel

No smart OO for the time being.  Please review usages of ``kept_`` carefully.
Fits on previous line?