Add some docstrings, clean up some things
Change the implementation of lists