a2o && o2a functions