Almost done needs polishing