refactoring for #179, #180, #181
refactoring for #184, #182, #185
refactoring for #184, #182, #185
implemented #186
implemented #119
use open graph protocol for title extraction before attempting to use html title