compile using o3