add optimistic locking on projects