Added challenge 5.
Added tests.