this is part of my coursera project