refactor coupling