finished all except extract min <3