using different modes of control depending on a parameter