only_ifを使って動作を制御するように改善