Fix bugs
Add basic test suite