this thing is so fucking confusing