internal structure of commit