This is way harder than I thought.