Lights are now explicit shared pointers only. Major cleanup.