better mode switch