pointer semantic