Refactored sensors to use events and decouple mission logic from main loop