The client should be a state machine: - [Start State] Waiting (waiting for challenge to start) - Going to next target - Grabbing cartridge - Checking cartridge sequence (camera calling + choose what spot we should put the vial in) - Place cartridge in spot