with example code and tests
Solution. Ready to commit to coursera.