Pulled out order type dependent behavior and added user selectable program