Add Multi Backend support

This is based on previous work by Sascha and with help from
Balazs and Thomas.
Actually you're right, this needs to be reversed for the single back end fallback