working, but not in place
in place sort