isn't this function exactly the same as the one above?