add CreatureFactory, unify CreatureObservers, change map