why this friend is needed?