adding some extra methods to the core and writing the unit tests to match them