Use factory method to create document instances
Add synchronized blocks for static shared fields (in constructor, getSpans, getSpanStart, getSpanEnd and replace)
Use VPath to address document instead of File