added class factory to simulation library