This is really hard.