Added support for optional headers
:method predicate added, needs refactoring though
Renaming
Refactoring