added self
test sort
added some comments