add better exists method