added generator-based simulation