Adding interfaces between the subsystems
Merge branch 'interfaces' into develop