Major OOP improvements