Submission for Technical Challange

See commit messages and associated email.