add atomic opt wrapper