Okay this is a bit complicated...