add hall function added