I do not really see why we need this function