add some comments and axiomatize length