Grid should be splitted in `Grid` and `GridBuilder` to prevent wrong usage. Currently you can add Pipes and Nodes after `validate()`. That is bad.