added multi-actor generation feat plus some refactoring