all done besides two bugs