broke document analyzer and parser into interfaces