Protocol renamed to Type, + push files under lib/