Adds more functionality and fixes some
More unit tests