nit: AstNodes -> astNodes as it's a private field, not a prop