enum Direction { LEFT, RIGHT, AUTO } public class Node : GLib.Object { public uint direction; private Node (uint direction = Direction.AUTO) { this.direction = direction; } public Node add (uint direction = Direction.AUTO) { var child = new Node (direction); return child; } }