Add main entities, interfaces and unit tests