method almost done