Added challenge5 and cleaned up challenge1/2
Completed challenge3
Added description to functions and added some error handling