New branch using a more procedural approach rather than OOP