added basic component and entity
added heavyweight component protocol. entity inherits component