fix the coupling problem + use parallel assignment + pass array in block