this one works
still not perfect, but retrys