Simplifications

- better OO
- removed ugly and duplicate code