refactor osc