finish 2 implementations of SA