refactoring: added LayerProtocol between Collapsable and the ...LayerProtocols
added HeaderTypes utility class