Multiple classes can be reused and more refurbished: - [x] make existing classes more generic and therefore reusable - [ ] make extensive use of class syntax to eliminate error sources and restructure class inheritance to prevent sideeffects and capuslate the codework - [ ] make use of functional programming aspects