some unnecessary comments removed