@evanxd Since we're using a dynamically typed language, we can always just switch by changing `new Radicale()` to `new SomeOtherThing()` and if `SomeOtherThing` has the same interface as `Radicale` we are basically fine.