Working through protocols and types.