This implementation is using Object-Oriented Programming and a Model View Controller framework