The encoder is constructed by stacking multiple graph neural network blocks and concatenating the outputs of each block. A block comprises a graph attention layer and a ReLU activation layer. None of the dropout or batch normalization layers was used. Concatenated outputs were then passed into the MLP network with one single layer to construct the node embedding. This encoder architecture is designed to tackle the over-smoothing issues of graph neural networks. The problem arises when multiple graph neural network layers are stacked together, making the computational graphs nearly identical. Over-smoothing might not be a severe issue for graph-level tasks but is a significant problem in performing node-level tasks. Multiple solutions were proposed: residual connections augmentations. In this work, we concatenate outputs of intermediate layers tackling both the over smoothing and vanishing gradients problems.