Initial commit with interfaces and definitions