re-introduced Components and Factory