refactored oap routine