ugh. this is hard.