Initial project setup with definition of interfaces