some changes

generalize Strategy class.
add getHeaders function.
add documentation.