added CObjectAlternator