more object oriented project structure