Commit of initial code and interfaces

Not ready for production nor testing