why do you take a pointer here?