Added base interfaces and classes and a first test.