first part almost done.