Worked on this while studying the Startup Engineering course on Coursera.