Added self organized lists and changed the interface that the lists implement. Also added unit tests