new solution oopprincipel II