Initial commit, with a basic definition and components