Added some tests and fixed some bugs