Orbiting

This is to resolve #43 and to resolve #44.
There is also some general clean up of some light related classes but no functionality changes.