https://medium.com/@adammuhammad.tandjung/test-driven-development-tdd-explained-with-a-practical-example-7a799dcc3d00