added implementation and tests for 2.1 assignment