Initial commit, created project structure and few interfaces.