An Entity Component System