Creating a tree of depth 5

I am doing this problem where in i have to create a tree of max depth 5. Trees of arithmetic expressions. I have classes Node, Binop, Plus, Minus, Multiply, Divide, OperatorFactory, Terminal Factory, and a main class. But what is happening currently is that the trees that are created are of some size (max 2 depth) and mostly it throws stack overflow error. To add child to the tree i have a method addRandomKids in BinOp which is supposed to add children to the trees. The code for the different classes is as follows: