Added tests and such