Work in progress: separate LampWithGenie into two classes