DefineComponent mostly written.