feat: add $expiration; fixed: is_search()