refactor to oF only