no longer using observers. just using adaptationDetector and Driver for now. implemented pu rain