returning an array of optionals for nodes was stupid