Woahhhh this is hard.