init commit: protocols and basic classes.