added several funcitons