First pass AssocableType protocol