implement commit