Add component-based entity system