add authorize function