switched format to idempotent version