OOP model

initial structure of classes, it maybe will change