OOP typing overloading