annealing needs some work but its sort of working