God damn this is hard