fixed 1
2 coded
2 needs debug