Base OOP-style implemented