everything done except for fixing qname parsing