modify version management  & add lock management