This starts to work...
Incomplete and broken but this is a nice point to check it in.