Unhappy 2g / GSM CALLS Preferred 3g+ DATA

Do anyone know of an app to change the priority of which network to use.

I want VOICE - default to most reliable [2g] and only use something else if 2g unavailable [networks in UK are notoriously bad at cell tower hand off on 3g connections resulting is dropping calls while driving on motorways]

I want DATA - default to highest speed, fall back to lower speeds as normal.

My options are 3g only, 2g only, 3g preferred - not ideal