Initial commit: core interfaces and empty core classes