https://medium.com/@devendravyas04/discover-an-easy-approach-to-understanding-the-four-fundamental-concepts-of-object-oriented-4cc3abd2b355