create X.load for parsing into X.Node objects
split concurrency helpers into a new module