OOP nice separation of concerns