class EntityCollection
{
public:
    typedef std::list<Entity*> EntityList;
    typedef EntityList::iterator iterator;

    EntityCollection(EventType event){
        EventSystem::listenToEvent(event, this);
    }

    ~EntityCollection(){
        clear();
    }

    void onEvent(Entity* entity){
        mQueue.push_back(entity);
    }

    bool emtpy() const{
        return mQueue.empty();
    }

    iterator begin(){
        return mQueue.begin();
    }

    iterator end(){
        return mQueue.end();
    }

    void clear(){
        // Delete entities.
    }

private:
    EntityList mEntities;
};