Added base interfaces and classes