almost done  with gd