implement try acquire