Index: branches/pyyaml3000/lib/yaml/__init__.py
===================================================================
--- branches/pyyaml3000/lib/yaml/__init__.py	(revision 53)
+++ branches/pyyaml3000/lib/yaml/__init__.py	(revision 55)
@@ -6,12 +6,9 @@
 from composer import Composer
 from resolver import Resolver
+from constructor import Constructor
 
 from tokens import *
 from events import *
-
-def scan(data, Reader=Reader, Scanner=Scanner):
-    reader = Reader(data)
-    scanner = Scanner(reader)
-    return iter(scanner)
+from nodes import *
 
 def parse(data, Reader=Reader, Scanner=Scanner, Parser=Parser):
@@ -19,22 +16,8 @@
     scanner = Scanner(reader)
     parser = Parser(scanner)
-    return iter(parser)
+    return parser
 
-def compose(data, Reader=Reader, Scanner=Scanner, Parser=Parser,
-        Composer=Composer):
-    reader = Reader(data)
-    scanner = Scanner(reader)
-    parser = Parser(scanner)
-    composer = Composer(parser)
-    return iter(composer)
-
-def compose_document(*args, **kwds):
-    try:
-        return compose(*args, **kwds).next()
-    except StopIteration:
-        return None
-
-def resolve(data, Reader=Reader, Scanner=Scanner, Parser=Parser,
-        Composer=Composer, Resolver=Resolver):
+def load(data, Reader=Reader, Scanner=Scanner, Parser=Parser,
+        Composer=Composer, Resolver=Resolver, Constructor=Constructor):
     reader = Reader(data)
     scanner = Scanner(reader)
@@ -42,10 +25,9 @@
     composer = Composer(parser)
     resolver = Resolver(composer)
-    return iter(resolver)
+    constructor = Constructor(resolver)
+    return constructor
 
-def resolve_document(*args, **kwds):
-    try:
-        return resolve(*args, **kwds).next()
-    except StopIteration:
-        return None
+def load_document(*args, **kwds):
+    for document in load(*args, **kwds):
+        return document
 
