Add Multi Backend support

This is based on previous work by Sascha and with help from
Balasz and Thomas.
:+1: