OOP learning and passing self around