One of the pillars of software development is: never reinvent the wheel. Why invent a new algorithm or write a piece of code to achieve a particular objective, if something already exists? To adapt a ...