finished the component/entity model