introduce Simulator class, change layout