Unit tests
Create some unit tests on a seperate branch. These tests should fail by default, but when the other features have been added, these tests should pass when merged.
Implement at least one test case for each of the new features added.
Related to milestone #5.