im trying to figure out how this works