@jerinphilip, I think create RNN/GRU from scratch would require too many other implementation and when it comes to Bidirectional RNN or Stacked RNN it would become more complex to implement from scratch.
I found one implementation of Bahdanau’s Attention 177 where he just combine this context vector with input embedding vector to overcome 3 input RNN/GRU problem.