refactored node creation to use run_with_timeout