Cleaned up the repo by excluding more generated files in .gitignore.
Restructured unit tests. Added new functionality to the interface.