Add left and right metods. Add circual dependency validation