update to handle different O3 sources