Basic explanation and test class

Explanation of what the methods should do are in comments
Test class works